home *** CD-ROM | disk | FTP | other *** search
- //: C13:MallocClass.cpp
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- // Malloc with class objects
- // What you'd have to do if not for "new"
- #include "../require.h"
- #include <cstdlib> // Malloc() & free()
- #include <cstring> // Memset()
- #include <iostream>
- using namespace std;
-
- class Obj {
- int i, j, k;
- static const int sz = 100;
- char buf[sz];
- public:
- void initialize() { // Can't use constructor
- cout << "initializing Obj" << endl;
- i = j = k = 0;
- memset(buf, 0, sz);
- }
- void destroy() { // Can't use destructor
- cout << "destroying Obj" << endl;
- }
- };
-
- int main() {
- Obj* obj = (Obj*)malloc(sizeof(Obj));
- require(obj != 0);
- obj->initialize();
- // ... sometime later:
- obj->destroy();
- free(obj);
- } ///:~
-